//
// Created by 原帅 on 2022/11/5.
//

#ifndef R_RFINPROCIF_H
#define R_RFINPROCIF_H

class RFinRegisterIF;

class RFinProcIF {
public:
    RFinProcIF();

    RFinProcIF(RFinRegisterIF& rFinRegisterIf);

    /**
     * 用来定义程序退出时的执行功能， 用户必须定义重新此函数，如果处理中返回了失败错误码，会传入fail函数中进行处理
     * @return 返回值为非0时，会进入fail()函数进行进一步处理，并将返回值作为参数传入fail()
     */
    virtual int finProc()=0;

    /**
     * finProc 返回值非0时，执行此函数。用户可以重新定义此函数，处理process的错误
     * @param iProcFailRet 传入的是process 的返回值
     * @return 返回非0时，与RProcIF不同，程序将继续执行
     */
    virtual int finFail(int iProcFailRet);

    virtual int registerFinProc(RFinRegisterIF& rFinRegisterIf);
};


#endif //R_RFINPROCIF_H
